home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 23
/
Amiga Format AFCD23 (Feb 1998, Issue 107).iso
/
-seriously_amiga-
/
shareware
/
programming
/
other
/
hunk
/
hoppers
/
manx.hop
< prev
next >
Wrap
Text File
|
1997-12-01
|
5KB
|
144 lines
;*************************************************************************
;** Manx Math routines **
;** Contributor: L.Lucius Nov 15th 1993 **
;** Modified for HOp: Thomas Richter (thor) Nov 1st 1997 **
;** Function: Modify 68000 math routines to use 68020+ instructions. **
;*************************************************************************
;*************************************************************************
;
; DIVS
;
#match
#code
48E7 4800 ; MOVEM.L D1/D4,-(A7)
4284 ; CLR.L D4
4A80 ; TST.L D0
6A04 ; BPL.B 000E
4480 ; NEG.L D0
5244 ; ADDQ.W #1,D4
4A81 ; TST.L D1
6A06 ; BPL.B 0018
4481 ; NEG.L D1
0A44 0001 ; EORI.W #0001,D4
613E ; BSR.B 0058
4A44 ; TST.W D4
6702 ; BEQ.B 0020
4480 ; NEG.L D0
4CDF 0012 ; MOVEM.L (A7)+,D1/D4
4A80 ; TST.L D0
4E75 ; RTS
;
;
#replace
4C41 0800 ; DIVS.L D1,D0
4E75 ; RTS
#end
;*************************************************************************
;
; DIVU/MODU
;
#match
#code
48E7 3000 ; MOVEM.L D2-D3,-(A7)
4841 ; SWAP D1
4A41 ; TST.W D1
6628 ; BNE.B 0032
4841 ; SWAP D1
4243 ; CLR.W D3
80C1 ; DIVU.W D1,D0
680E ; BVC.B 0020
3400 ; MOVE.W D0,D2
4240 ; CLR.W D0
4840 ; SWAP D0
80C1 ; DIVU.W D1,D0
3600 ; MOVE.W D0,D3
3002 ; MOVE.W D2,D0
80C1 ; DIVU.W D1,D0
2200 ; MOVE.L D0,D1
4840 ; SWAP D0
3003 ; MOVE.W D3,D0
4840 ; SWAP D0
4241 ; CLR.W D1
4841 ; SWAP D1
4CDF 000C ; MOVEM.L (A7)+,D2-D3
4E75 ; RTS
;
;
#replace
4C41 0001 ; DIVUL.L D1,D1:D0
4E75 ; RTS
#end
;*************************************************************************
;
; MODS
;
#match
#code
48E7 4800 ; MOVEM.L D1/D4,-(A7)
4284 ; CLR.L D4
4A80 ; TST.L D0
6A04 ; BPL.B 000E
4480 ; NEG.L D0
5244 ; ADDQ.W #1,D4
4A81 ; TST.L D1
6A02 ; BPL.B 0014
4481 ; NEG.L D1
611A ; BSR.B 0030
2001 ; MOVE.L D1,D0
60D8 ; BRA.B FFF2
2F01 ; MOVE.L D1,-(A7)
6112 ; BSR.B 0030
2001 ; MOVE.L D1,D0
221F ; MOVE.L (A7)+,D1
4A80 ; TST.L D0
4E75 ; RTS
;
;
#replace
2F01 ; MOVE.L D1,-(A7)
4C41 0801 ; DIVSL.L D1,D1:D0
C141 ; EXG D0,D1
221F ; MOVE.L (A7)+,D1
4A80 ; TST.L D0
4E75 ; RTS
#end
;*************************************************************************
;
; MULU
;
#match
#code
48E7 7000 ; MOVEM.L D1-D3,-(A7)
3401 ; MOVE.W D1,D2
C4C0 ; MULU.W D0,D2
2601 ; MOVE.L D1,D3
4843 ; SWAP D3
C6C0 ; MULU.W D0,D3
4843 ; SWAP D3
4243 ; CLR.W D3
D483 ; ADD.L D3,D2
4840 ; SWAP D0
C0C1 ; MULU.W D1,D0
4840 ; SWAP D0
4240 ; CLR.W D0
D082 ; ADD.L D2,D0
4CDF 000E ; MOVEM.L (A7)+,D1-D3
4E75 ; RTS
;
;
#replace
4C01 0000 ; MULU.L D1,D0
4E75 ; RTS
#end